<?php

namespace app\admin\controller;

use app\admin\model\AuthroleModel;
use think\Controller;
use think\Db;
use think\Request;
use think\Session;
class BaseController extends Controller
{
    /*
     * 初始化操作
     */
    public function _initialize()
    {
        //取出seession的值
        $admin_id=Session::get("admin_id");
        $url=getActionUrl(); //获取当前的操作的url
        if (empty($admin_id)){
            $this->redirect("admin/login/login");
        }else{
            $adminInfo=Db::name("admin")
                ->where(array("id"=>$admin_id))
                ->find();
        }
        //取出角色
        $role=Db::name("auth_role")
            ->where('role_id',$adminInfo["role_id"])
            ->field('role_name')
            ->find();
        //检查该方法是否添加了权限方法
        $is_action=Db::name("auth_menu")
            ->where('url',$url)
            ->find();

        //过滤首页和欢迎页
        if (empty($is_action) && !in_array($url,config("permission_authlist"))){
              if (request()->isPost()){
                $this->error('你没有该操作权限');
            }else{
                $html=<<<HTML
                <span style='text-align: center;color: red;margin-left: 50%'>你没有该操作权限!</span>
HTML;
                echo $html;
                exit;

            }
        }
        //获取当前管理员是否有当前进去的方法的权限
        $url=getActionUrl();
        $roles=new AuthroleModel();
        $auth=$roles->getAuthInfo($adminInfo["role_id"]);
        if ($auth==NULL){
			  if (request()->isPost()){
                $this->error('你没有该操作权限!');
            }else{
                  $html=<<<HTML
                <span style='text-align: center;color: red;margin-left: 50%'>你没有该操作权限!</span>
HTML;
                  echo $html;
                  exit;
            }
        }
        $auth_array=array();
        foreach ($auth as $key=>$value){
            $auth_array[]=strtolower($value['url']);
        }
        //过滤首页和欢迎页
//        var_dump($url);var_dump($auth_array);
        if (!in_array($url,config("permission_authlist"))){
            if (!in_array($url,$auth_array)){
				  if (request()->isPost()){
                $this->error('你没有该操作权限!');
            }else{
                      $html=<<<HTML
                <span style='text-align: center;color: red;margin-left: 50%'>你没有该操作权限!</span>
HTML;
                      echo $html;
                      exit;
            }
            
            }
        }
        //获取当前用户可以访问的菜单
        $menuInfo=$roles->getMenuInfo($adminInfo["role_id"]);
        $this->assign('menuInfo',$menuInfo);  //读取当前管理员的所有菜单栏的列表
        $this->assign('admin',$adminInfo["names"]);   //读取当前管理员的信息
        $this->assign('role',$role);  //读取角色的信息
        $this->assign('adminInfo',$adminInfo);//读取当前管理员的信息
        parent::_initialize(); // TODO: Change the autogenerated stub

    }

    public function clear(){
        if (delete_dir_file(CACHE_PATH) || delete_dir_file(TEMP_PATH)) {
            return json(["code"=>1,"msg"=>"清除缓存成功"]);
        } else {
            return json(["code"=>0,"msg"=>"清除缓存失败"]);
        }
    }
}